<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<style>
body {
  font-family: Helvetica, arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  padding-top: 10px;
  padding-bottom: 10px;
  background-color: white;
  padding: 30px; }

body > *:first-child {
  margin-top: 0 !important; }
body > *:last-child {
  margin-bottom: 0 !important; }

a {
  color: #4183C4; }
a.absent {
  color: #cc0000; }
a.anchor {
  display: block;
  padding-left: 30px;
  margin-left: -30px;
  cursor: pointer;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0; }

h1, h2, h3, h4, h5, h6 {
  margin: 20px 0 10px;
  padding: 0;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  cursor: text;
  position: relative; }

h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
  background: url() no-repeat 10px center;
  text-decoration: none; }

h1 tt, h1 code {
  font-size: inherit; }

h2 tt, h2 code {
  font-size: inherit; }

h3 tt, h3 code {
  font-size: inherit; }

h4 tt, h4 code {
  font-size: inherit; }

h5 tt, h5 code {
  font-size: inherit; }

h6 tt, h6 code {
  font-size: inherit; }

h1 {
  font-size: 28px;
  color: black; }

h2 {
  font-size: 24px;
  border-bottom: 1px solid #cccccc;
  color: black; }

h3 {
  font-size: 18px; }

h4 {
  font-size: 16px; }

h5 {
  font-size: 14px; }

h6 {
  color: #777777;
  font-size: 14px; }

p, blockquote, ul, ol, dl, li, table, pre {
  margin: 15px 0; }

hr {
  background: transparent url() repeat-x 0 0;
  border: 0 none;
  color: #cccccc;
  height: 4px;
  padding: 0;
}

body > h2:first-child {
  margin-top: 0;
  padding-top: 0; }
body > h1:first-child {
  margin-top: 0;
  padding-top: 0; }
  body > h1:first-child + h2 {
    margin-top: 0;
    padding-top: 0; }
body > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child {
  margin-top: 0;
  padding-top: 0; }

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
  margin-top: 0;
  padding-top: 0; }

h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
  margin-top: 0; }

li p.first {
  display: inline-block; }
li {
  margin: 0; }
ul, ol {
  padding-left: 30px; }

ul :first-child, ol :first-child {
  margin-top: 0; }

dl {
  padding: 0; }
  dl dt {
    font-size: 14px;
    font-weight: bold;
    font-style: italic;
    padding: 0;
    margin: 15px 0 5px; }
    dl dt:first-child {
      padding: 0; }
    dl dt > :first-child {
      margin-top: 0; }
    dl dt > :last-child {
      margin-bottom: 0; }
  dl dd {
    margin: 0 0 15px;
    padding: 0 15px; }
    dl dd > :first-child {
      margin-top: 0; }
    dl dd > :last-child {
      margin-bottom: 0; }

blockquote {
  border-left: 4px solid #dddddd;
  padding: 0 15px;
  color: #777777; }
  blockquote > :first-child {
    margin-top: 0; }
  blockquote > :last-child {
    margin-bottom: 0; }

table {
  padding: 0;border-collapse: collapse; }
  table tr {
    border-top: 1px solid #cccccc;
    background-color: white;
    margin: 0;
    padding: 0; }
    table tr:nth-child(2n) {
      background-color: #f8f8f8; }
    table tr th {
      font-weight: bold;
      border: 1px solid #cccccc;
      margin: 0;
      padding: 6px 13px; }
    table tr td {
      border: 1px solid #cccccc;
      margin: 0;
      padding: 6px 13px; }
    table tr th :first-child, table tr td :first-child {
      margin-top: 0; }
    table tr th :last-child, table tr td :last-child {
      margin-bottom: 0; }

img {
  max-width: 100%; }

span.frame {
  display: block;
  overflow: hidden; }
  span.frame > span {
    border: 1px solid #dddddd;
    display: block;
    float: left;
    overflow: hidden;
    margin: 13px 0 0;
    padding: 7px;
    width: auto; }
  span.frame span img {
    display: block;
    float: left; }
  span.frame span span {
    clear: both;
    color: #333333;
    display: block;
    padding: 5px 0 0; }
span.align-center {
  display: block;
  overflow: hidden;
  clear: both; }
  span.align-center > span {
    display: block;
    overflow: hidden;
    margin: 13px auto 0;
    text-align: center; }
  span.align-center span img {
    margin: 0 auto;
    text-align: center; }
span.align-right {
  display: block;
  overflow: hidden;
  clear: both; }
  span.align-right > span {
    display: block;
    overflow: hidden;
    margin: 13px 0 0;
    text-align: right; }
  span.align-right span img {
    margin: 0;
    text-align: right; }
span.float-left {
  display: block;
  margin-right: 13px;
  overflow: hidden;
  float: left; }
  span.float-left span {
    margin: 13px 0 0; }
span.float-right {
  display: block;
  margin-left: 13px;
  overflow: hidden;
  float: right; }
  span.float-right > span {
    display: block;
    overflow: hidden;
    margin: 13px auto 0;
    text-align: right; }

code, tt {
  margin: 0 2px;
  padding: 0 5px;
  white-space: nowrap;
  border: 1px solid #eaeaea;
  background-color: #f8f8f8;
  border-radius: 3px; }

pre code {
  margin: 0;
  padding: 0;
  white-space: pre;
  border: none;
  background: transparent; }

.highlight pre {
  background-color: #f8f8f8;
  border: 1px solid #cccccc;
  font-size: 13px;
  line-height: 19px;
  overflow: auto;
  padding: 6px 10px;
  border-radius: 3px; }

pre {
  background-color: #f8f8f8;
  border: 1px solid #cccccc;
  font-size: 13px;
  line-height: 19px;
  overflow: auto;
  padding: 6px 10px;
  border-radius: 3px; }
  pre code, pre tt {
    background-color: transparent;
    border: none; }

sup {
    font-size: 0.83em;
    vertical-align: super;
    line-height: 0;
}
* {
	-webkit-print-color-adjust: exact;
}
@media screen and (min-width: 914px) {
    body {
        width: 854px;
        margin:0 auto;
    }
}
@media print {
	table, pre {
		page-break-inside: avoid;
	}
	pre {
		word-wrap: break-word;
	}
}
</style>
<title>乌尓度语客户端接口</title>

</head>
<body>
<h2>乌尓度语客户端接口</h2>

<h3>使用说明</h3>

<h4>Host</h4>

<pre><code>测试 t.api.urdu.onairm.cn
发布 api.urdu.onairm.cn
</code></pre>

<h4>基础参数</h4>

<pre><code>s       String     系统类型         1:android  2:ios
v       String     版本            1.0.0
d       String     deviceid        FKFJhKJDKSJSLDKJLJ
</code></pre>

<h4>数据类型</h4>

<pre><code>Content-type: application/json; charset=utf-8 
</code></pre>

<h4>数据格式</h4>

<pre><code>{
    "statusCode": 0, //0:成功,&gt;=1 失败,对应错误码
    "message": "成功",
    "timestamp": 12313123123, //时间戳       
    "data": { //返回数据
    }
}    
</code></pre>

<h4>分业数据格式</h4>

<pre><code>{
    "statusCode": 0,
    "message": "成功",
    "page": 1, //下次请求页码
    "pageSize": 10, //每页多少条
    "count": 100,//总条数
    "timestamp": 12313123123,
    "data": {
    }
}
</code></pre>

<h3>对象实体</h3>

<h4>User    用户</h4>

<pre><code>{
    "userId": "12123", //用户唯一ID
    "nickName": "丁三石", //笔名
    "iconUrl":"sdfsdfsdf",  //头像
    "city":"北京", //城市
    "gender":"男", //性别
    "email":"tomj@onairm.com",//邮箱
    "phone":"18701436021",//电话
    "work":"工程师",//职业
    "birthday":"121389182398",//生日
    "slogan":"明天会更好"//签名  
}
</code></pre>

<h4>Live    直播</h4>

<pre><code>{
    "imgUrl1": "aasd", //轮播图片1
    "imgUrl2": "sadasd", //轮播图片2
    "imgUrl3": "asdad", //轮播图片3
    "headline":"打倒印度",  //资源标题
    "favoriteTotal":100,//点赞总计
    "commentsTotal":100,//评论总计
    "vodTotal":100,//点播总计
    "url":"http://7vznzz.com1.z0.glb.clouddn.com/mrhy1.mp3"//资源路径
}
</code></pre>

<h4>News   新闻</h4>

<pre><code>{
    "newsId":"adffd",//新闻ID
    "imgUrl": "aasd", //图片地址
    "title": "sadasd", //标题
    "intro": "asdad", //简介
    "srcUrl":"http://7vznzz.com1.z0.glb.clouddn.com/0908.mp4",//视频地址
    "data":"123132123",//日期
    "favoriteTotal":100,//点赞总计
    "commentsTotal":100,//评论总计
    "vodTotal":100//点播总计
}
</code></pre>

<h4>Comments    评论</h4>

<pre><code>{
    "commentsId":"adffd",//评论ID
    "iconUrl": "aasd", //头像地址
    "username": "sadasd", //用户名
    "commentsTime":12312213,//评论时间
    "details": "拍的不错" //评论详情
}
</code></pre>

<h4>Novel    小说</h4>

<pre><code>{
    "novelId":"adffd",//小说ID
    "imgUrl": "aasd", //小说图片地址
    "title": "本草纲目", //书名
    "author": "李时珍", //作者
    "favoriteTotal":100,//点赞总计
    "commentsTotal":100,//评论总计
    "vodTotal":100,//点播总计
    "editions":[
        {
            "subTitle":"本草纲目第一部",  //
            "srcUrl":"http://7vznzz.com1.z0.glb.clouddn.com/sgjx.mp3" //播放地址
        },
        {
            "subTitle":"本草纲目第二部",  //
            "srcUrl":"http://7vznzz.com1.z0.glb.clouddn.com/xsjm.mp3" //播放地址
        }
    ]
}
</code></pre>

<h4>Songs    歌曲</h4>

<pre><code>{
    "songsId":"adffd",//歌曲ID
    "imgUrl": "aasd", //歌曲图片地址
    "title": "望月", //歌名
    "author": "杜甫", //歌手
    "favoriteTotal":100,//点赞总计
    "commentsTotal":100,//评论总计
    "vodTotal":100,//点播总计
    "srcUrl":"http://7vznzz.com1.z0.glb.clouddn.com/sgjx.mp3" //播放地址
}
</code></pre>

<h3>内容资源接口</h3>

<h4>获取直播</h4>

<pre><code>说明：时间倒序返回前7条数据
请求地址
    http://api.urdu.onairm.cn/getLives
HTTP请求方式
    GET
输入参数说明
    无
返回数据
{
    "statusCode": 0,
    "message": "成功",
    "data":[//Live Object集合           
    ]
}
</code></pre>

<h4>获取新闻</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/getNews
HTTP请求方式
    GET
输入参数说明
    page       Int       当前页
    size       Int       每页条数
返回数据
{
    "statusCode": 0,
    "message": "成功",
    "page": 1, //当前页
    "pageSize": 10, //每页多少条
    "count": 100,//总条数
    "data":[//News Object集合           
    ]
}
</code></pre>

<h4>获取评论</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/getComments
HTTP请求方式
    GET
输入参数说明
    resId      String    资源id
    resType    Int       资源类型   //资源类型  1:直播  2:新闻  3:小说  4:歌曲
    page       Int       当前页
    size       Int       每页条数
返回数据
{
    "statusCode": 0,
    "message": "成功",
    "page": 1, //当前页
    "pageSize": 10, //每页多少条
    "count": 100,//总条数
    "data":[//Comments Object集合           
    ]
}
</code></pre>

<h4>发表评论</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/publishComments
HTTP请求方式
    GET
输入参数说明
    resId      String    资源id
    resType    Int       资源类型   //资源类型  1:直播  2:新闻  3:小说  4:歌曲
    uid        String    用户ID
    content    String    评论内容   //
返回数据
{
    "statusCode": 0,
    "message": "评论成功"
} 
</code></pre>

<h4>删除评论</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/deleteComments
HTTP请求方式
    GET
输入参数说明
    resId      String    资源id
    resType    Int       资源类型   //资源类型  1:直播  2:新闻  3:小说  4:歌曲
    uid        String    用户ID
返回数据
{
    "statusCode": 0,
    "message": "删除成功"
}        
</code></pre>

<h4>点赞</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/favorite
HTTP请求方式
    GET
输入参数说明
    resId      String    资源id
    resType    Int       资源类型   //资源类型  1:直播  2:新闻  3:小说  4:歌曲
返回数据
{
    "statusCode": 0,
    "message": "点赞成功"
}
</code></pre>

<h4>分享</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/share
HTTP请求方式
    GET
输入参数说明
    resId      String    资源id
    resType    Int       资源类型   //资源类型  1:直播  2:新闻  3:小说  4:歌曲
返回数据
{
    "statusCode": 0,
    "message": "分享成功"
}               
</code></pre>

<h4>获取小说</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/getNovels
HTTP请求方式
    GET
输入参数说明
    page       Int       当前页
    size       Int       每页条数
返回数据
{
    "statusCode": 0,
    "message": "成功",
    "page": 1, //当前页
    "pageSize": 10, //每页多少条
    "count": 100,//总条数
    "data":[//Novel Object集合           
    ]
}
</code></pre>

<h4>获取歌曲</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/getSongs
HTTP请求方式
    GET
输入参数说明
    version    Int       当前歌曲库版本
    page       Int       当前页
    size       Int       每页条数
返回数据
{
    "statusCode": 0,
    "message": "成功",
    "page": 1, //当前页
    "pageSize": 10, //每页多少条
    "count": 100,//总条数
    "data":[//Songs Object集合           
    ]
}   
</code></pre>

<h3>用户相关接口</h3>

<h4>注册</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/signUp
HTTP请求方式
    POST
输入参数说明
    email        String  邮箱
    username     String  用户名
    verifyCode   String  验证码 
    password     String  密码
返回数据
{
    "statusCode": 0,//0:成功 &gt;0失败对应相应错误码 
    "message":"seccess",//成功
    "timestamp": 134234234234, //时间戳
    "data":{//返回User Object
    }
}
</code></pre>

<h4>获取验证码</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/verifyCode
HTTP请求方式
    POST
输入参数说明
    email        String  邮箱
    type         int     类型 1:用户注册  2:找回密码
返回数据
{
    "statusCode": 0,
    "message": "验证码已发送"
}
</code></pre>

<h4>登录</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/signIn
HTTP请求方式
    GET
输入参数说明
    email        String  邮箱
    password     String  密码
    type         int     类型 1:邮箱  2:facebook
返回数据
{
    "statusCode": 0,//0:成功 &gt;0失败对应相应错误码 
    "message":"seccess",//成功
    "timestamp": 134234234234, //时间戳
    "data":{//返回User Object  
    }
}
</code></pre>

<h4>登出</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/logout
HTTP请求方式
    GET
输入参数说明
    userId     String    用户ID
返回数据
{
    "statusCode": 0,
    "message": "成功"
}
</code></pre>

<h4>修改密码</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/resetPwd
HTTP请求方式
    POST
输入参数说明
    email            String  邮箱
    originalPassword String  原密码
    newPassword      String  新密码
返回数据
{
    "statusCode": 0,
    "message": "密码修改成功"
}
</code></pre>

<h4>忘记密码</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/forgotPwd
HTTP请求方式
    POST
输入参数说明
    email            String  邮箱
    verifyCode       String  验证码
    password         String  密码
返回数据
{
    "statusCode": 0,//0:成功 &gt;0失败对应相应错误码 
    "message":"seccess",//成功
    "timestamp": 134234234234, //时间戳
    "data":{//返回User Object  
    }
}
</code></pre>

<h4>获取用户信息</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/getUserInfo
HTTP请求方式
    GET
输入参数说明
    userId    String   userId
返回数据
{
    "statusCode": 0,//0:成功 &gt;0失败对应相应错误码 
    "message":"seccess",//成功
    "timestamp": 134234234234, //时间戳
    "data":{//返回User Object
    }
}
</code></pre>

<h4>修改用户信息</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/updateUserInfo
HTTP请求方式
    POST
输入参数说明
    uid         String  用户ID
    number      int     更新编号   //1:头像 2:昵称 3:slogan 4:city 5:性别 6:phone 7:职业 8:生日
    content     String  更新内容
返回数据
{
    "statusCode": 0,
    "message": "更新成功"
}
</code></pre>

<h3>数据统计</h3>

<h4>设备登入</h4>

<pre><code>调用时机：启动应用调用
请求地址
    http://api.urdu.onairm.cn/loginDevice
HTTP请求方式
    GET
输入参数说明
    sysVersion     String       手机系统版本号
    network        String       联网方式
    uid            String       用户ID
返回数据
{
    "statusCode": 0,
    "message": "成功"
}
</code></pre>

<h4>设备登出</h4>

<pre><code>调用时机：退出应用调用
请求地址
    http://api.urdu.onairm.cn/logoutDevice
HTTP请求方式
    GET
输入参数说明
    sysVersion     String       手机系统版本号
    network        String       联网方式
    uid            String       用户ID       
返回数据
{
    "statusCode": 0,
    "message": "成功"
} 
</code></pre>

<h4>统计回传</h4>

<pre><code>调用时机：每次启动应用调用，成功清除统计信息（相当于上传上次统计数据）
请求地址
    http://api.urdu.onairm.cn/statistics
HTTP请求方式
    POST
输入参数说明
    info        JsonArray       统计信息如下：   
[
    {"type":1,"resId":12,"time":12312313123,"length":1000},
    {"type":1,"resId":12,"time":12312313123,"length":1000}
]
返回数据
{
    "statusCode": 0,
    "message": "成功"
}                 
</code></pre>

<h3>其它接口</h3>

<h4>意见反馈</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/feedback
HTTP请求方式
    POST
输入参数说明
    uid        String     用户ID
    subject    String     主题   //诗歌太少
    text       String     反馈内容   //建议增加李白诗歌
返回数据
{
    "statusCode": 0,
    "message": "成功"
} 
</code></pre>

<h4>获取用户服务</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/getUserService
HTTP请求方式
    GET
输入参数说明
    无
返回数据
{
    "statusCode": 0,
    "message": "成功",
    "data":{
        "info":"云之端。。。。"// 
    }
} 
</code></pre>

<h4>获取公司简介</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/getCompanyInfo
HTTP请求方式
    GET
输入参数说明
    无
返回数据
{
    "statusCode": 0,
    "message": "成功",
    "data":{
        "info":"云之端。。。。"// 
    }
}                           
</code></pre>

<h4>获取基础信息</h4>

<pre><code>请求地址
    http://api.urdu.onairm.cn/getConfig
HTTP请求方式
    GET
输入参数说明
    无
返回数据
{
    "statusCode": 0,
    "message": "成功",
    "data":{
        "upToken":"sefsfsfsf:sfdsf:sfd",//七牛上传token
        "qNiuHost":"qiniu.com",// 七牛host
        "songsVersion":1//歌曲库版本号
    }
}
</code></pre>
</body>
</html>